#define _USE_MATH_DEFINES

#include <cstdio>
#include <iostream>
#include <iomanip>
#include <vector>
#include <algorithm>
#include <string>
#include <cstring>
#include <map>
#include <set>
#include <queue>
#include <cassert>
#include <stack>
#include <cstdlib>
#include <bitset>
#include <cmath>

#define minus __________________minus

#define forn(i,n) for (int i = 0; i < int(n); ++i)
#define pb push_back
#define all(a) a.begin(),a.end()
#define sz(a) int(a.size())
#define mp make_pair

using namespace std;

typedef long long li;
typedef long double ld;

typedef pair<int,int> pt;
#define ft first
#define sc second

const int INF = int(1e9);
const li INF64 = li(1e18);
const ld EPS = 1e-9;

//#define TASK_NAME ""

string s;

bool read() {
	getline(cin, s);
	if (s == "#")
		return false;
	return true;
}

li gcd(li a, li b)
{
	return b == 0 ? a : gcd(b, a % b);
}

pair<li, li> a;

pair<li, li> minus(pair<li, li> a, pair<li, li> b)
{
	pair<li, li> res;
	res.ft = a.ft * b.sc - b.ft * a.sc;
	res.sc = a.sc * b.sc;
	li g = gcd(res.ft, res.sc);
	res.ft /= g, res.sc /= g;
	return res;
}

void solve() {
	int r = s.size() - 1;

	if (s[r] == 'h')
		a = mp(0, 1), r -= 5;
	else
		a = mp(90, 1), r -= 4;

	li x = 1;

	while(r > 0)
	{
		if (s[r] == 'h')
		{
			x *= 2;
			a = minus(a, mp(90, x));
			r -= 5;
		}
		else
		{
			x *= 2;
			a = minus(a, mp(-90, x));
			r -= 4;
		}
	}
	cout << a.ft;
	if (a.sc != 1)
		cout << "/" << a.sc;
	cout << endl;
}

int main() {
#ifdef TASK_NAME
	freopen(TASK_NAME ".in", "r", stdin);
	freopen(TASK_NAME ".out", "w", stdout);
#endif

#ifdef _DEBUG
	freopen("input.txt", "r", stdin);
	freopen("output.txt", "w", stdout);
#endif

	while (read())
		solve();

	return 0;
}